﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sociedad.BL;
using Sociedad.DAL;

public partial class SOA_RegistroSOA_SolicitudInscripcion_Listado : System.Web.UI.Page
{
    SolicitudInscripcionBL blSolIns = new SolicitudInscripcionBL();
    soa_SolicitudInscripcion beSolIns = new soa_SolicitudInscripcion();
    Wfs_SeguimientoDocumento beDocWF = new Wfs_SeguimientoDocumento();
    WfDocumentoBL blDocWF = new WfDocumentoBL();

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            try
            {
                Inicializar();
            }
            catch (Exception ex)
            {
                lblMsj.Text = "Se produjo un error al intentar cargar los datos, volver a intentar.";
                lblMsj.ForeColor = System.Drawing.Color.Red;
                lblMsj.Visible = true;  
            }
        }
        else
        {
            lblMsj.Visible = false;
        }
    }

    private void Inicializar()
    {
        //Obtener lista de solicitudes        
        Actualizar_Grilla();
    }

    private void Actualizar_Grilla()
    {
        grvListaSolicitud.DataSource = blSolIns.Listar_SolicitudInscripcion(Convert.ToInt16(ddlAnio.SelectedValue));
        grvListaSolicitud.DataBind();     
    }

    protected void imb_Cerrar_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect("~/Principal.aspx");
    }

    protected void imbNuevo_Click(object sender, ImageClickEventArgs e)
    {
        Response.Redirect("SolicitudInscripcion_Manten.aspx");
    }

    protected void imbEnviarDoc_Click(object sender, ImageClickEventArgs e)
    {
            GridViewRow rowSel = grvListaSolicitud.SelectedRow;
            if (rowSel == null)
            {
                lblMsj.Text = "Seleccione una solicitud a enviar para evaluación.";
                lblMsj.ForeColor = System.Drawing.Color.Blue;
                lblMsj.Visible = true;
            }
            else
            {
                if (rowSel.Cells[6].Text.Equals("2001"))
                {
                    modalPopupEnviar.Show();
                }
                else
                {
                    if (rowSel.Cells[6].Text.Equals("2005"))
                    {
                        lblMsj.Text = "La Solicitud se encuentra anulada, imposible enviar.";
                        lblMsj.ForeColor = System.Drawing.Color.Blue;
                        lblMsj.Visible = true;
                    }
                    else
                    {
                        lblMsj.Text = "La Solicitud ya ha sido derivado, solo puede enviar las Solicitudes en estado emitido.";
                        lblMsj.ForeColor = System.Drawing.Color.Blue;
                        lblMsj.Visible = true;
                    }
                }
            }
    }

    protected void imbOK5_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            GridViewRow rowSel = grvListaSolicitud.SelectedRow;
            if (rowSel == null)
            {
                lblMsj.Text = "Seleccione una solicitud a enviar para evaluación.";
                lblMsj.ForeColor = System.Drawing.Color.Blue;
                lblMsj.Visible = true;
            }
            else
            {
                // En estado Emitido: 2001
                beDocWF.ctdo_Codigo = "SINS01";
                beDocWF.cedo_CodDoc = rowSel.Cells[0].Text;
                beDocWF.cprm_EnviaTipUO = Session[Constantes.session_CodTipUO].ToString();
                beDocWF.cent_EnviaUO = Session[Constantes.session_CodUniOrg].ToString();
                beDocWF.usr_EnviaUser = Session[Constantes.session_CodUsuario].ToString();
                beDocWF.csdo_Comentario = "Inicio Flujo de Documento";
                beDocWF.cprm_Estado = "2002";

                String[] cRpta = blDocWF.Registrar_DocumentoWF(beDocWF, 'I').Split('@');
                if (cRpta[0] == "1")
                {
                    Actualizar_Grilla();
                    lblMsj.Text = "La Solicitud [" + beDocWF.cedo_CodDoc + "] ha sido derivado con éxito.";
                    lblMsj.ForeColor = System.Drawing.Color.Green;
                    lblMsj.Visible = true;
                }
                else
                {
                    if (String.IsNullOrEmpty(cRpta[1]))
                    {
                        lblMsj.Text = "Se produjo un error inesperado, cierre la ventana y vuelva a intentar enviar.";
                        lblMsj.ForeColor = System.Drawing.Color.Blue;
                        lblMsj.Visible = true;
                    }
                    else
                    {
                        lblMsj.Text = cRpta[1];
                        lblMsj.ForeColor = System.Drawing.Color.Blue;
                        lblMsj.Visible = true;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            lblMsj.Text = "Se produjo un error al intentar enviar la solicitud, volver a intentar.";
            lblMsj.ForeColor = System.Drawing.Color.Red;
            lblMsj.Visible = true;
        }
    }
}